10.2 LoRa测试床

什么是测试床

简单的说,测试床就是一个平台,用于对科学理论、计算工具和新技术进行严格、透明和可复制测试。

在网络研究领域里,许多网络性能和指标的测量就需要实际的大规模的实验部署,这时候,测试床的重要性就显现出来了。网络研究发展到现在,涌现出了许多经典的测试床系统,比如用于WSN(wireless sensor network)的MoteLabFlockLabINDRIYA2, 用于802.11b/g的Roofnet等等。相关的论文在引用[2]-[4]。

在这个章节里,我们将介绍我们所搭建的LoRa测试床系统。LoRa是一种低功耗广域网通信技术,即通信距离远且功耗低,做这样的一套测试床系统,既有与之前的测试床系统类似的地方,也有其特有的不同特性,我们的设计考虑到了这些。

与我们这套测试床系统类似的有OpenChirp以及阿里的AliOS Things里的lora平台(可能访问不了)。

LoRa测试床概述和功能

概述

LoRa测试床搭建的初衷是方便快捷的对LoRa设备进行操作和实验。
由于LoRa长距离通信的特点,我们不能仅让测试床限制在某一个地方,而是应该让其具有广域通信的能力。因此我们设计了使用树莓派控制LoRa节点的方案,这样的系统具有可移动的特性,可以方便的移动到任何有网络的地方进行实验。在不断的探索中,我们还开发了一套LoRa自主更新的系统,即除了使用LoRa进行通信,我们还利用其本身的信号进行控制更新程序,从而到达实现远程更新的目的,进一步摆脱了电力和网络的限制。关于两种设计方案,我们会在下面的章节进行详细的说明。

实现功能

  • 烧录新程序
  • 打开,关闭,重启LoRa节点
  • 批量进行上述的操作
  • LoRa节点的远程自主更新(基于本身的信号)
  • 实时采集数据,并可视化
  • 数据导出,下载

下面我们将从LoRa测试床架构组成,部署情况,使用指南和技术实现四个方面进行叙述。

LoRa测试床架构组成

LoRa测试床的总结架构设计如下图所示

测试床设计架构

容易看出,测试床平台由三部分组成:

  1. LoRa组件搭建的LoRa服务,包括节点,网关和服务器,运行的协议为LoRa相关的协议。为了与TCP/IP网络区分开,这里特定使用了蓝色的箭头表示通信流程。
  2. 控制平台。这里设计了两套控制方案,分别应对不同的应用场景。

    首先由架构图可以看到第一套方案是我们设计的控制网络,位于图中的左下方,中心服务器接收来自Web服务器的指令,然后将指令传给树莓派系统。由于树莓派系统与LoRa节点是用USB接口连接,故而树莓派系统可以将命令进一步传给LoRa的节点,这样就达到了控制节点的目的。值得一提的是在实际实现中,控制命令是通过内网进行操控,从而更加安全可靠。这种方案需要给树莓派系统供电供网,通常用于室内。

    由于LoRa的通信是双向的,故而也可以采取一套自主更新系统,即使用自身的LoRa信号进行程序的更新。这种更新系统不受电力,网络的外在条件限制,通常用于室外。

  3. 客户系统。不同的客户机通过网络连接到Web服务器进行操作,我们提供了方便操作的UI。我们通过共享数据库来实现Web服务器与LoRa服务器之间的数据共享。

这三台服务器是相互独立的,在实际实现里,可以实现在同一台物理机也可以实现在不同的物理机。下面我们将从这三个方面展开进行详细的叙述。

LoRa组件

为了实现LoRa测试床系统,第一步是将LoRa的一套服务调试完成。这里主要介绍我们使用的LoRa组件,具体实现见LoRa测试床的技术实现部分。

服务器

我们采用的是实验室采购的一台服务器,linux系统,LoRa服务对服务器并没有特别的要求,故略去不表。

网关

我们主要使用两种LoRa网关,如下图网关1网关2(图片来自这里):

新节点硬件
网关1
老节点硬件
网关2

它们的主控芯片为ARM Cortex-A53平台,主频1.2GHz。不同之处在于包装和附加功能,比如网关2可以电池供电,提供了更多的接口等。目前测试床有3个网关1和2个网关2。

节点

我们同样拥有两种节点,主要区别在于MCU,射频芯片以及其他传感器件。同时在封装上也有区别,分别适用于室内和室外的部署。

节点1
节点2

节点1的射频芯片为SX1268,MCU为STM32L083,并且含有GPS,温湿度以及动力传感器。节点2则使用SX1278的射频芯片,STM32L53的MCU以及含有串口。

我们对节点1进一步的封装,使其能够防水防潮,并且装上太阳能板,使其能够在室外长期的工作,效果图如下:

太阳能节点(1)
太阳能节点(2)
对于节点2,我们让其与树莓派进行串口连接,从而赋予其可移动控制的特性,通常用于室内,效果图如下:
实验床节点(1)
实验床节点(2)

控制平台

正如前面介绍的,我们设计了两套控制系统,分别是树莓派管控系统和自主更新系统。

  • 树莓派管控系统

    对LoRa节点的控制 对LoRa节点的控制基于树莓派和节点间的串口连接,这只要将LoRa节点与树莓派串口连接就可以实现。但是要实现LoRa节点对命令的响应,比如烧写,打开,停止这些控制命令,就需要给节点实现Bootloader的服务。

    树莓派与中心服务器的连接问题 对于有连接Wifi的条件,我们采用路由器进行网络的分配和管控,同时由于在学校内部,我们一般使用内网进行连接和控制。对于没有连接WiFi的条件,我们则给树莓派+LoRa节点配置了手机SD卡以及穿透服务连接到我们的内网。同时为了便于时时控制和收集运行日志,我们实现了树莓派与服务器间一对一的socket连接进行数据的传输。

  • 自主更新系统

    TODO

两种系统的比较。这两种系统毫无疑问是各有优劣的,树莓派管控系统对于资源要求比较苛刻,比如需要联网,需要长时间不间断供电等等,但是其好在运行稳定,实现相对容易和快捷。自主更新系统则比较自由,对环境条件依赖度很小,但是其实现代价比较高昂,考虑到LoRa本身通信速度的局限性,整套系统的稳定性也有待考量。

客户系统

客户端永远是最轻松的一方。我们提供了UI以供操作。点击这里进入客户系统。下面是登陆界面和操作界面一瞥。

登陆界面
操作界面

LoRa测试床部署情况

网关

节点

LoRa测试床使用指南

LoRa测试床技术实现

LoRa网络搭建

控制平台搭建

  • 树莓派管控系统
  • 自主更新系统

参考文献

  • [1] https://en.wikipedia.org/wiki/Testbed
  • [2] Werner-Allen, Geoffrey, Patrick Swieskowski, and Matt Welsh. “Motelab: A wireless sensor network testbed.” Proceedings of the 4th international symposium on Information processing in sensor networks. IEEE Press, 2005.
  • [3] Aguayo, Daniel, et al. “Link-level measurements from an 802.11 b mesh network.” ACM SIGCOMM Computer Communication Review. Vol. 34. No. 4. ACM, 2004.
  • [4] Doddavenkatappa, Manjunath, Mun Choon Chan, and Akkihebbal L. Ananda. “Indriya: A low-cost, 3D wireless sensor network testbed.” International conference on testbeds and research infrastructures. Springer, Berlin, Heidelberg, 2011.

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

文章标题:10.2 LoRa测试床

文章字数:2.1k

本文作者:WiSys Lab

发布时间:2019-07-23, 09:37:32

最后更新:2019-07-23, 10:00:27

原始链接:http://yoursite.com/2019/07/23/10.2 LoRa测试床/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录